using System.Collections.Generic;
using SmartLink.Domain.Entity;
using SmartLink.Domain.ExpandEntity.Oragnization;
using SmartLink.EnumLibrary;
using SmartLink.DTOS;

namespace SmartLink.Domain.IServices
{
    public interface IBIZ_OrganizationServices
    {
        OperationResult AddOrganization(BIZ_Organization organizationDTO);
        bool CheckExistByOrgName(string orgName);
        bool DeleteOrganization(int orgId);
        IList<OrganizationManageExpand> GetOrganizationList(int status, int district, string keyValue, int pageIndex, int pageSize, bool isSearchTotal, out int count);
        SingleOragnizationInfoExapnd GetSingleOrganization(int orgId);
        IList<BIZ_Organization> OrganizationListinfo();
        bool UpdateOrganization(BIZ_Organization organizationDTO);
        IEnumerable<BIZ_Organization> GetOrgDescendants(int topOid, bool withSelf = false);
        BIZ_Organization GetOrganization(int id);
        IEnumerable<BIZ_Organization> GetRootOrganizations();
        IEnumerable<BIZ_Organization> GetCompanyTreeData(int? topOid);
    }
}